AWS CLIのプロファイルを簡単切り替え
AWSのアカウントを複数使用している場合など、プロファイルを切り変えることがあるかと思います。
コマンド実行時に指定したり、
$ aws s3 ls --profile test
環境変数に指定して切り替えが可能です。
$ export AWS_DEFAULT_PROFILE=test
今回、コマンドから簡単にプロファイル切り替えられるようにしてみました。
awspというnpmのライブラリをフォークして実装しています。
コマンドを使用可能にする
こちらから、必要なソースをcloneします。
$ git clone https://github.com/itouuuuuuuuu/awsp.git
cloneした awsp
ディレクトリ内でパッケージをインストールします。
$ cd awsp $ npm i
最後に、.zshrc
に下記を追記します。
~/awsp/run.sh
の部分は、 awsp
ディレクトリを配置しているパスを適宜指定してください。
alias awsp="source ~/awsp/run.sh"
シェルを再起動して、準備完了です!
プロファイルを切り替えてみる
awsp
コマンドを実行するだけで切り替え可能です。
現在のプロファイル一覧が表示されるので、選択してください。
$ awsp AWS Profile Switcher ? Choose a profile ❯ test default
プロファイルが切り替わっていることが確認できるかと思います。
$ echo $AWS_DEFAULT_PROFILE test
また、引数としてプロファイル名を与えることでの切り替えも可能です。
$ awsp test
こちらの記事のロールの一時クレデンシャルをコマンドから設定する方法と組み合わせれば、「プロファイルの切り替え -> 一時クレデンシャルの環境変数設定」が結構楽に操作できるかと思います。
課題
npm installで 本家のawsp をインストールしてコマンドを実行すると、 [プロセスが完了しました]
と表示され何も操作できなくなります。
npmパッケージとしてインストールせずにローカルで使用すると問題なく動作します。
source _awsp
で現在のシェルで実行している箇所とnpmのパッケージの兼ね合い?かと思うのですが、もし解決方法わかる方はアドバイスいただければ幸いです。
パッケージからインストールしたい。。